import fetch from "@/api/fetch"
import constants from "@/api/constants"

const baseURL = constants.baseURL + "/product";

const api = {
    // 商品分类
    category: {
        // 树列表
        treeList() {
            return fetch.get(baseURL + "/category/treeList")
        },
        // 子分类列表
        children(parentId) {
            return fetch.get(baseURL + "/category/children/" + parentId)
        },
        // 详情
        info(id) {
            return fetch.get(baseURL + "/category/" + id)
        },
        // 新增
        save(form) {
            return fetch.post(baseURL + "/category/save", form);
        },
        // 编辑
        update(form) {
            return fetch.post(baseURL + "/category/update", form);
        },
        // 删除
        delete(id) {
            return fetch.post(baseURL + "/category/delete/" + id);
        }
    },
    // 属性分组
    group: {
        // 交换排序值
        swapSort(prevGroupId, nextGroupId) {
            return fetch.post(baseURL + "/group/swapSort/" + prevGroupId + "/" + nextGroupId)
        },
        // 构造spuSaleAttrDto对象
        buildAttr(name) {
            return fetch.post(baseURL + "/group/buildAttr", {
                name: name
            })
        },
        // 构造AttrOptionDto对象
        buildAttrOption(attrName, value) {
            return fetch.post(baseURL + "/group/buildAttrOption", {
                attrName: attrName,
                value: value
            })
        },
        // 查询分类下的分组属性
        listWithCascade(categoryId) {
            return fetch.get(baseURL + "/group/listWithCascade/" + categoryId)
        },
        // 列表
        list(params) {
            return fetch.get(baseURL + "/group/list", { params })
        },
        // 详情
        info(id) {
            return fetch.get(baseURL + "/group/" + id);
        },
        // 新增
        save(form) {
            return fetch.post(baseURL + "/group/save", form);
        },
        // 编辑
        update(form) {
            return fetch.post(baseURL + "/group/update", form);
        },
        // 删除
        delete(id) {
            return fetch.post(baseURL + "/group/delete/" + id);
        }
    },
    // 基本属性
    baseAttr: {
        // 交换排序值
        swapSort(prevAttrId, nextAttrId) {
            return fetch.post(baseURL + "/baseAttr/swapSort/" + prevAttrId + "/" + nextAttrId)
        },
        // 属性列表
        list(groupId) {
            return fetch.get(baseURL + "/baseAttr/list/" + groupId)
        },
        // 详情
        info(id) {
            return fetch.get(baseURL + "/baseAttr/" + id);
        },
        // 新增
        save(form) {
            return fetch.post(baseURL + "/baseAttr/save", form);
        },
        // 编辑
        update(form) {
            return fetch.post(baseURL + "/baseAttr/update", form);
        },
        // 删除
        delete(id) {
            return fetch.post(baseURL + "/baseAttr/delete/" + id);
        }
    },
    // 销售属性
    saleAttr: {
        // 交换排序值
        swapSort(prevAttrId, nextAttrId) {
            return fetch.post(baseURL + "/saleAttr/swapSort/" + prevAttrId + "/" + nextAttrId)
        },
        // 分页列表
        list(categoryId) {
            return fetch.get(baseURL + "/saleAttr/list/" + categoryId)
        },
        // 属性列表
        listWithParent(categoryId) {
            return fetch.get(baseURL + "/saleAttr/list/" + categoryId + "/withParent")
        },
        // 详情
        info(id) {
            return fetch.get(baseURL + "/saleAttr/" + id);
        },
        // 新增
        save(form) {
            return fetch.post(baseURL + "/saleAttr/save", form);
        },
        // 编辑
        update(form) {
            return fetch.post(baseURL + "/saleAttr/update", form);
        },
        // 删除
        delete(id) {
            return fetch.post(baseURL + "/saleAttr/delete/" + id);
        }
    },
    // spu
    spu: {
        // 详情
        info(id) {
            return fetch.get(baseURL + "/spu/" + id);
        },
        // 分页列表
        listPage(params) {
            return fetch.get(baseURL + "/spu/listPage", { params });
        },
        // 新增
        save(form) {
            return fetch.post(baseURL + "/spu/save", form);
        },
        // 编辑
        update(form) {
            return fetch.post(baseURL + "/spu/update", form);
        },
        // 删除
        delete(id) {
            return fetch.post(baseURL + "/spu/delete/" + id);
        }
    }
}

export default api;